test -f $terminfo/`echo $DIALOG_TERM | sed 's/\(.\).*/\1/'`/$DIALOG_TERM \
&& return
cat >&2 <<eof
TERM=$DIALOG_TERM is not supported by your terminfo system.
See terminfo(5), tic(1m) and term(5) for help.
$progname failed. Program aborted.
eof
exit 1
}
fix_pager_more()
{
case "$PAGER" in
less*) : ;;
*) $echon 'Press return to continue... ' >&2
read foo;;
esac
}
exist_test()
{
type=$1 ; name=$2; what=$3
if [ ! "$type" "$name" ]; then
msg="Could not find $what."
if test -f $log; then
msg="$msg\\n\\nThe programm will show you the error-log and then exit."
else
msg="$msg\\n\\nThe programm will exit now."
fi
run_dialog --msgbox "$msg" 23 80
clear
if test -f $log; then
<$log eval $PAGER
fix_pager_more
fi
exit 1
fi
}
choose_editor()
{
run_dialog --inputbox \
"Your editor for changing config-files currently\\nis set to $EDIT.\\n\\nPress RETURN to accept this default or enter\\nthe name of the editor of your choice.\\n\\n" \
23 80 2>$tmpmenu || return
x=`cat $tmpmenu`
test -z "$x" || EDIT=$x
}
choose_pager()
{
run_dialog --inputbox \
"Your pager to view the logfile currently\\nis set to $PAGER.\\n\\nPress RETURN to accept this default or enter\\nthe name of the pager of your choice.\\n\\n" \
23 80 2>$tmpmenu || return
x=`cat $tmpmenu`
test -z "$x" || PAGER=$x
}
setup_preferences()
{
while true ; do
run_dialog \
--menu "\\n\\nSet up your editor and pager for this texconfig session.\\n\\n" \
23 80 4 \
RETURN 'back to main menu' \
EDITOR 'set up editor for changing config-files' \
PAGER 'set up pager to view the logfile' \
LOG 'view logfile' \
2>$tmpmenu || return
ans=`cat $tmpmenu`
test -z "$ans" && return
case "$ans" in
EDITOR) choose_editor ;;
PAGER) choose_pager ;;
LOG) clear; <$log eval $PAGER; fix_pager_more ;;
RETURN) return ;;
esac
done
}
config_tex()
{
exist_test -d "$formats" "directory for format files"
clear
edit_hyphen
}
choose_mode()
{
out=$1
choose_mode_msg="$2"
mode=$default_mode
exist_test -f "$modes" "modes.mf file"
if [ ! -z "$mode" ] ; then
if yesno "\\n\\nUse mode $mode as default $3?\\n\\n" 23 80 ; then
: # nothing
else
mode=""
fi
fi
if [ -z "$mode" ] ; then
#--title \"teTeX-Config: MetaFont mode\" \
eval run_dialog \
--menu \"\$choose_mode_msg\" \
23 80 14 `list_mf_modes $modes` \
2>$out
else
echo $mode >$out
fi
}
get_default_mode()
{
choose_mode $tmpans 'Choose a default mode for xdvi, dvips and metafont. As a rule\nof thumb, choose the most commonly mode used for printing at your site.'
default_mode=`cat $tmpans`
test -z "$default_mode" && return
clear
do_set_default_mode "$default_mode" 2>&1 | tee -a $log
for i in *.log *.base; do rm -f "$bases/$i"; \mv "$i" "$bases/$i"; done
rm -f $bases/plain.base $bases/mfw.base
ln -s mf.base $bases/plain.base
ln -s mf.base $bases/mfw.base
$TC_MKTEXUPD $bases mf.base 2>/dev/null
$TC_MKTEXUPD $bases mfw.base 2>/dev/null
$TC_MKTEXUPD $bases plain.base 2>/dev/null
}
run_config_mp()
{
test -d "$TC_TEXMFMAIN/metapost" || return
exist_test -d "$mems" "directory for mem files"
echo "Running mpost to create plain mem ..."
run_create_mp_mem
echo "Done."; echo
}
run_create_mp_mem()
{
rm -f *.log *.mem
mpost -ini mpost.mp </dev/null || return
for i in *.log *.mem; do rm -f "$mems/$i"; \mv "$i" "$mems/$i"; done
rm -f $mems/plain.mem
ln -s mpost.mem $mems/plain.mem
$TC_MKTEXUPD $mems plain.mem
$TC_MKTEXUPD $mems mpost.mem
}
select_format()
{
a=`list_formats`
test -z "$a" && {
run_dialog --msgbox \
"No format which allows setting hyphenation." 23 80
formatname=
return
}
eval run_dialog \
--menu \'\\n\\nChoose format to set up hyphenation for.\\n\\n\' \
23 80 8 $a \
2>$tmpmenu || return
formatname=`cat $tmpmenu`
}
config_dvips_paper()
{
eval run_dialog \
--menu \'\\n\\nChoose the default papersize definition for dvips.\\n\\n\' \
23 80 8 `list_dvips_papers $dvips_conf` \
2>$tmpmenu || return
paper=`cat $tmpmenu`
test -z "$paper" && return ;
setup_dvips_paper "$paper" 2>&1 | tee -a $log
}
dvips_choose_printcmd()
{
run_dialog --inputbox \
"\\n\\nEnter the command to print to the printer '$printer'.\\nIn general, you need a command like 'lpr' or 'lpr -Pfoo'.\\n\\nNOTE: If you just press return, printing will be disabled\\nand the output saved to a file by default.\\n\\n" \
23 80 2>$tmpmenu || return
x=`cat $tmpmenu`
if [ -z "$x" ] ; then
echo save-to-file >&2
else
echo $x >&2
fi
}
has_latex()
{
test -d $TC_TEXMFMAIN/tex/latex && return 0
run_dialog --msgbox \
"This funtion needs LaTeX to be installed." 23 80
return 1
}
dvips_test_print()
{
has_latex || return
cd $tmpdir
clear
latex testpage 2>&1 | tee -a $log
case $printer in
default) dvips testpage ;;
*) dvips -P$printer testpage ;;
esac 2>&1 | tee -a $log
}
yesno() { run_dialog --yesno "$@"; }
dvips_setup_mode()
{
choose_mode $tmpans "Choose the metafont mode for printer '$printer'" "for printer $printer"
mode=`cat $tmpans`
test -z "$mode" && return
run_dvips_setup_mode "$mode" 2>&1 | tee -a $log
}
run_dvips_setup_mode()
{
mode="$1"
if test -z "$2"; then
set x `find_res $mode`; shift
res_x=$1; res_y=$2
else
res_x=$2
res_y=${3-$2}
fi
config_replace "$dvips_conf" '^M' "M $mode"
config_replace "$dvips_conf" '^D' "D $res_x"
config_replace "$dvips_conf" '^X' "X $res_x"
config_replace "$dvips_conf" '^Y' "Y $res_y"
}
dvips_setup_printcmd()
{
dvips_choose_printcmd 2>$tmpans
printcmd=`cat $tmpans`
test -z "$printcmd" && return
do_dvips_setup_printcmd "$printcmd" 2>&1 | tee -a $log
}
do_dvips_setup_printcmd()
{
printcmd="$@"
if test "$printcmd" = save-to-file; then
config_replace "$dvips_conf" '^o' 'o'
else
config_replace "$dvips_conf" '^o' "o |$printcmd"
fi
}
dvips_setup_offset()
{
run_dialog --inputbox \
"
Enter a dimension pair (A rightwards offset and a downwards
offset), e.g. 2mm,-0.5in (right 2mm and up .5in):
" \
23 80 2>$tmpmenu || return
x=`cat $tmpmenu`
test -z "$x" || run_dvips_setup_offset "$x" 2>&1 | tee -a $log
}
do_dvips_setup_offset()
{
x="$1"
if test -z "$x"; then
echo "Error: no offset given to do_dvips_setup_offset. Skipped." >&2
return
fi
run_dvips_setup_offset "$x"
}
run_dvips_setup_offset()
{
x="$1"
config_replace "$dvips_conf" '^O' "O $x"
}
dvips_config_local()
{
exist_test -d "$dvips_conf_dir" "config file for dvips (config.ps)"
while true ; do
run_dialog \
--menu "\\n\\n$version: set up printer '$printer' for dvips\\n\\n" \
23 80 5 \
RETURN 'Back to dvips main menu' \
MODE 'Set up mf mode (resolution will be calculated as well)' \
CMD 'Set up the command to print on this printer' \
OFFSETS 'Set up offsets for printing' \
TEST 'Print a testpage' \
2>$tmpmenu || return
ans=`cat $tmpmenu`
test -z "$ans" && return
case "$ans" in
MODE) dvips_setup_mode ;;
CMD) dvips_setup_printcmd ;;
OFFSETS) dvips_setup_offset ;;
TEST) dvips_test_print ;;
RETURN) return ;;
esac
done
}
dvips_config_global()
{
config_dvips_paper
printer=default
dvips_config_local
}
dvips_get_printername()
{
run_dialog --inputbox \
"Printer name" \
23 80 2>$tmpmenu || return
x=`cat $tmpmenu`
test -z "$x" || echo $x >&2
}
config_dvips()
{
while true; do
run_dialog \
--menu '
dvips section: If you only have no more than one printer, you
only need to go through the GLOBAL menu. You can use dvips for non
PostScript printers, if you can setup your printing system to convert
PostScript to a format that your printer can handle. Maybe, you can
use GhostScript to do the conversation (if you printer is supported).
A definition for a printer PRINTER directly corresponds to a
configuration file config.PRINTER in the $TC_VARTEXMF/dvips directory.
' \
23 80 6 \
RETURN 'back to main menu' \
GLOBAL 'global settings' \
ADD 'add a printer configuration (to be used via -P flag)' \
DEL 'remove a printer definition' \
CHANGE 'change an existing printer definition' \
"LOG" 'view logfile' \
2>$tmpmenu || return
ans=`cat $tmpmenu`
test -z "$ans" && return
case "$ans" in
ADD|DEL|CHANGE)
dvips_get_printername 2>$tmpans
printer=`cat $tmpans`
test -z "$printer" && continue
dvips_conf=$dvips_conf_dir/config.$printer
;;
esac
case "$ans" in
GLOBAL) dvips_conf=$dvips_conf_dir/config.ps
dvips_config_global ;;
ADD) if [ -f $dvips_conf_dir/config.$printer ] ; then
run_dialog --msgbox \
"Configuration for $printer already exists." 23 80
config_replace "$xdvi_app_file" 'mfMode:' "XDvi*mfMode: $mode" 2>&1 | tee -a $log
config_replace "$xdvi_app_file" 'pixelsPerInch:' "XDvi*pixelsPerInch: $res" 2>&1 | tee -a $log
config_replace "$xdvi_app_file" 'shrinkFactor:' "XDvi*shrinkFactor: $shrink" 2>&1 | tee -a $log
config_replace "$xdvi_app_file" 'shrinkButton1:' "XDvi*shrinkButton1: $b1" 2>&1 | tee -a $log
config_replace "$xdvi_app_file" 'shrinkButton2:' "XDvi*shrinkButton2: $b2" 2>&1 | tee -a $log
config_replace "$xdvi_app_file" 'shrinkButton3:' "XDvi*shrinkButton3: $b3" 2>&1 | tee -a $log
config_replace "$xdvi_app_file" 'shrinkButton4:' "XDvi*shrinkButton4: $b4" 2>&1 | tee -a $log
}
xdvi_make_test()
{
if [ -z "$DISPLAY" ] ; then
:
fi
cd $tmpdir 2>&1 | tee -a $log
clear
tex '\input story\end' 2>&1 | tee -a $log
clear
xdvi story 2>&1 | tee -a $log
}
config_xdvi()
{
test -d "$xdvi_app_dir" || $TC_MKTEXDIR "$xdvi_app_dir"
test -f "$xdvi_app_file" || touch "$xdvi_app_file"
exist_test -f "$xdvi_app_file" "app-default file for xdvi"
while true ; do
run_dialog \
--menu '\n\nSet up xdvi via application ressources.\n\nNote 1: set the mode from the main menu.\nNote 2: a symbolic Link for the app-default file is no longer necessary.\n\n' \
"Your \$VARTEXFONTS directory currently\\nis set to $VARTEXFONTS.\\n\\nPress RETURN to accept this default or enter\\nthe name of an other directory.\\n\\n" \
--menu "\nSet up target directories for font creation.\n\nExample: current settings for font $ex with default mode\\n are (tfm resp. pk):\\n\\n $tfm\\n $pk\n\n" \
23 80 7 \
RETURN 'back to main menu' \
FONTRO 'remove global write permissions from standard fonts tree' \
FONTRW 'add global write permissions to standard fonts tree' \
OPTIONS 'set up options for mktex scripts' \
VARDIR 'directory for new fonts (if varfonts option active)' \